# 2025.05.09力扣网刷题
# 找出最大的几近缺失整数——数组、哈希表——简单
# 给你一个整数数组 nums 和一个整数 k 。
# 如果整数 x 恰好仅出现在 nums 中的一个大小为 k 的子数组中，则认为 x 是 nums 中的几近缺失（almost missing）整数。
# 返回 nums 中 最大的几近缺失 整数，如果不存在这样的整数，返回 - 1 。
# 子数组 是数组中的一个连续元素序列。
# 示例 1：
# 输入：nums = [3, 9, 2, 1, 7], k = 3
# 输出：7
# 解释：
# 1 出现在两个大小为 3 的子数组中：[9, 2, 1]、[2, 1, 7]
# 2 出现在三个大小为 3 的子数组中：[3, 9, 2]、[9, 2, 1]、[2, 1, 7]
# 3 出现在一个大小为 3 的子数组中：[3, 9, 2]
# 7 出现在一个大小为 3 的子数组中：[2, 1, 7]
# 9 出现在两个大小为 3 的子数组中：[3, 9, 2]、[9, 2, 1]
# 返回 7 ，因为它满足题意的所有整数中最大的那个。
# 示例 2：
# 输入：nums = [3, 9, 7, 2, 1, 7], k = 4
# 输出：3
# 解释：
# 1 出现在两个大小为 3 的子数组中：[9, 7, 2, 1]、[7, 2, 1, 7]
# 2 出现在三个大小为 3 的子数组中：[3, 9, 7, 2]、[9, 7, 2, 1]、[7, 2, 1, 7]
# 3 出现在一个大小为 3 的子数组中：[3, 9, 7, 2]
# 7 出现在三个大小为 3 的子数组中：[3, 9, 7, 2]、[9, 7, 2, 1]、[7, 2, 1, 7]
# 9 出现在两个大小为 3 的子数组中：[3, 9, 7, 2]、[9, 7, 2, 1]
# 返回 3 ，因为它满足题意的所有整数中最大的那个。
# 示例 3：
# 输入：nums = [0, 0], k = 1
# 输出： - 1
# 解释：
# 不存在满足题意的整数。
# 提示：
# 1 <= nums.length <= 50
# 0 <= nums[i] <= 50
# 1 <= k <= nums.length

class Solution(object):
    def largestInteger(self, nums, k):
        """
        :type nums: List[int]
        :type k: int
        :rtype: int
        """
        hash = [0] * 51
        length = len(nums)
        for i in range(length - k + 1):
            flag = [False] * 51
            for j in range(i, i + k):
                key = nums[j]
                if not flag[key]:
                    flag[key] = True
                    hash[key] += 1
        ans = -1
        for i in range(length):
            if hash[nums[i]] == 1 and nums[i] > ans:
                ans = nums[i]
        return ans
